iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 4
0
Elastic Stack on Cloud

ELK x SRE (沒時間了,你快變成賽亞人吧)系列 第 4

今夜,運維來找出機器的效能瓶頸吧-初探 APM(上)

  • 分享至 

  • xImage
  •  

來找出機器的阿基里斯腱吧
今天只是先來個淺談~~~(沒有實作)

https://ithelp.ithome.com.tw/upload/images/20200917/20109984KAtzOlouYs.png

APM 官網傳送門

https://ithelp.ithome.com.tw/upload/images/20200917/20109984AQNMeFszce.png

先從全局觀來看一下"可观察性"

將APM與“可觀察性”的其他方面(日誌和基礎架構指標)放在一起討論會很有幫助。
日誌、APM和基礎架構指標構成了可觀察性三要素

參考文章:
利用 Elasticsearch 和Elastic APM 監測應用

https://ithelp.ithome.com.tw/upload/images/20200918/20109984UF3h4UUnSK.png

https://ithelp.ithome.com.tw/upload/images/20200917/20109984l76as9VWTF.png

APM 是什麼呢?

  • 應用程序性能監測彌合了指標和日誌之間的差距。雖然日誌和指標往往更具交叉性,涉及基礎架構和組件,
  • 但APM 側重於應用程序,允許 IT 和開發人員監測其堆棧的應用層,包括最終用戶體驗。

使用 APM 添加到您的監測中的好處:

  • Visualizing application bottlenecks
  • 了解服務的時間花在什麼上,以及它崩潰的原因。
  • 了解服務如何相互交互並可視化瓶頸
  • 主動發現並修復性能瓶頸和錯誤(在太多客戶受到影響之前)
  • 提高開發團隊的生產力
  • 在瀏覽器中跟踪終端用戶體驗

APM 歷史

  • 今天elastic的APM來源於之前的opbeat。
  • 而Opbeat是由一個丹麥初創團隊於2013年成立的老公司了,專門運維軟件的開發,而其主打產品即是APM運維軟件。
  • 被elastic收購之後,opbeat已經於2018年5月份,正式關閉網站和社區,轉到了elastic APM上:

https://ithelp.ithome.com.tw/upload/images/20200917/20109984K0qnwsdxuy.png

基本組件

Elastic APM 由四個基本組件構成:

  • APM agents
  • APM Server
  • Elasticsearch
  • Kibana APM UI

https://ithelp.ithome.com.tw/upload/images/20200917/20109984aFtojDOvhd.png

APM agent

是一系列開源庫,使用與服務器端相同的語言編寫,目前支持node、python、ruby、js,java和golang。您可以像安裝任何其他庫一樣將它們安裝到服務器端中。apm agent會檢測代碼並在運行時收集性能數據和錯誤。此數據可緩沖一小段時間並發送到APM服務器。

APM Server

是一個用Go編寫的開源應用程序,通常在專用服務器上運行。它默認偵聽端口8200,並通過JSON HTTP API從代理接收數據。然後,它根據該數據創建文檔並將其存儲在Elasticsearch中。

Elasticsearch

是一個高度可擴展的開源全文搜索和分析引擎。它允許你快速,近實時地存儲,搜索和分析大量數據。Elasticsearch用於存儲APM性能指標並利用其聚合。

Kibana

是一個開源分析和可視化平台,旨在與Elasticsearch協同工作。你可使用Kibana搜索,查看Elasticsearch中存儲的數據並與之進行交互。你還可以使用Kibana中的專用APM UI或可以通過APM Kibana UI直接加載的預構建的開源Kibana dashboard來可視化APM數據。(basic license就授權了APM功能)

APM 的特色

組件通信

  • Intake API是的APM agent和APM server進行通信的內部協議。在APM server驗證並處理來自APM agent的事件(通過Intake API)後,server將數據轉換為Elasticsearch文檔並將其存儲在相應的Elasticsearch索引中。只需幾秒鐘,您就可以開始在Kibana中查看應用程序性能數據。

真實用戶監控(RUM)

  • Real User Monitoring捕獲用戶與Web瀏覽器等客戶端的交互。javascript agent是Elastic的RUM agent

分佈式跟踪(Distributed trace)

  • Rack是一個request。因為是一個微服務系統,整個request是由多個service共同完成的。示例中,參與服務的bean由ruby, python, java, node。可見,整個Distributed trace與技術無關,只要由一個公共的根(trace id),則在服務下所有的transactions均可在UI上顯示。

APM 強調畫面的互動性

https://ithelp.ithome.com.tw/upload/images/20200917/201099848sy9G9iUdK.png

最後來個 Garttner 的市場調研吧

Magic Quadrant for Application Performance Monitoring

(目前最新)2020 年4月22日發布
用於監視應用程序性能的魔力象限:
https://ithelp.ithome.com.tw/upload/images/20200917/20109984RMNJB7hOcW.png

https://ithelp.ithome.com.tw/upload/images/20200918/201099841kr7oidHBt.png

半澤直樹 SP2 第 8 集一樣好看,我還是捨不得一個月後再去看它


上一篇
今夜,運維來觀察機器的健康狀態吧-初探 Metrics(上)
下一篇
今夜,來談談跨部門企業知識文件的快速搜索平台、管理、以及保護吧 - 初探Workplace Search(上)
系列文
ELK x SRE (沒時間了,你快變成賽亞人吧)9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言